---
title: lint-staged
description: Kjør automatisk Ultracite på dine staged Git-filer med lint-staged
---

Ultracite integreres sømløst med [lint-staged](https://github.com/okonet/lint-staged) for å automatisk formatere og kjøre linting på koden din før hver commit. Dette sikrer at kun ren, riktig formatert kode havner i depotet ditt.

## Hva er lint-staged?

lint-staged er et verktøy som kjører linters og formateringsverktøy mot staged Git-filer. Det er spesielt nyttig fordi det:

- Behandler kun filer som faktisk skal commites
- Forhindrer dårlig formatert kode fra å komme inn i depotet ditt
- Kjører raskt siden det kun sjekker endrede filer
- Integreres perfekt med Git hooks

## Hvordan Ultracite bruker lint-staged

Når du kjører `npx ultracite init`, hvis du velger lint-staged-alternativet, gjør Ultracite automatisk:

1. **Installerer lint-staged** som en utviklingsavhengighet
2. **Oppretter eller oppdaterer** din lint-staged-konfigurasjon
3. **Konfigurerer formatteren** til å kjøre på relevante filtyper

Standardkonfigurasjonen kjører `npx ultracite fix` på disse filtypene:
- JavaScript/TypeScript-filer (`.js`, `.jsx`, `.ts`, `.tsx`)
- JSON-filer (`.json`, `.jsonc`)
- CSS-filer (`.css`, `.scss`)
- Markdown-filer (`.md`, `.mdx`)

## Støttede konfigurasjonsformater

Ultracite sin lint-staged-integrasjon støtter alle standard lint-staged konfigurasjonsformater:

### package.json

```json title="package.json"
{
  "lint-staged": {
    "*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}": ["npx ultracite fix"]
  }
}
```

### .lintstagedrc.json

```json title=".lintstagedrc.json"
{
  "*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}": ["npx ultracite fix"]
}
```

### .lintstagedrc.js (CommonJS)

```javascript title=".lintstagedrc.js"
module.exports = {
  "*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}": ["npx ultracite fix"]
};
```

### .lintstagedrc.mjs (ES Modules)

```javascript title=".lintstagedrc.mjs"
export default {
  "*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}": ["npx ultracite fix"]
};
```

### .lintstagedrc.yaml

```yaml title=".lintstagedrc.yaml"
"*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}":
  - 'npx ultracite fix'
```

## Smart sammenslåing av konfigurasjon

Hvis du allerede har en lint-staged-konfigurasjon, vil Ultracite:

- **Oppdage** ditt eksisterende konfigurasjonsformat
- **Slå sammen** Ultracite-reglene med dine eksisterende regler
- **Bevare** dine tilpassede konfigurasjoner
- **Oppdatere** filen direkte

Det betyr at du trygt kan kjøre `npx ultracite init` selv om du allerede har lint-staged satt opp.

## Hvordan det fungerer

1. **Pre-commit-hook**: lint-staged kjører før hver commit via Husky
2. **Filoppdagelse**: Kun staged filer som matcher mønstrene blir behandlet
3. **Formateringskommando**: `npx ultracite fix` kjøres på hver matchende fil
4. **Automatisk fiksing**: Biome fikser automatisk problemer der det er mulig
5. **Re-staging**: Fiksete filer blir automatisk re-staget for commit

## Manuell konfigurasjon

Hvis du trenger å tilpasse lint-staged-oppsettet ditt, kan du endre konfigurasjonen etter initialisering:

```json title="package.json"
{
  "lint-staged": {
    "*.{js,jsx,ts,tsx}": ["npx ultracite fix", "npm run test:unit"],
    "*.{json,jsonc}": ["npx ultracite fix"],
    "*.{css,scss}": ["npx ultracite fix", "npm run test:styles"],
    "*.{md,mdx}": ["npx ultracite fix"]
  }
}
```

## Integrasjon av kommandoer

Lint-staged-integrasjonen fungerer med Ultracite sin kommandostruktur:

- **`npx ultracite fix`**: Kjører Biome med automatisk fiksing (brukes av lint-staged)
- **`npx ultracite check`**: Kjører Biome uten automatisk fiksing (for CI/manuelle sjekker)

## Feilsøking

### Konfigurasjon ikke funnet
Hvis du ser feil om manglende lint-staged-konfigurasjon:

```bash
npx ultracite init  # Kjør initialiseringen på nytt
```

### ESM/CommonJS-problemer
Ultracite oppdager automatisk prosjektet ditt og oppretter riktig konfigurasjonsformat:

- **ESM-prosjekter** (med `"type": "module"` i package.json) får `.mjs`-konfigurasjoner
- **CommonJS-prosjekter** får `.cjs`-konfigurasjoner
- **Fallback**: Oppretter `.lintstagedrc.json` hvis modul-deteksjon feiler

### Konflikter med eksisterende konfigurasjon
Hvis du har komplekse eksisterende konfigurasjoner, kan det hende du må slå sammen manuelt:

1. Ta backup av din eksisterende lint-staged-konfigurasjon
2. Kjør `npx ultracite init`
3. Slå manuelt sammen eventuelle tilpassede regler du må bevare

## Beste praksis

1. **Hold det raskt**: Kjør kun nødvendige sjekker i lint-staged
2. **Bruk spesifikke mønstre**: Målrett kun filene som trenger behandling
3. **Kombiner med CI**: Bruk lint-staged for raske lokale sjekker, full linting i CI
4. **Test oppsettet ditt**: Lag en test-commit for å sikre at alt fungerer

## Relatert

- [Husky-integrasjon](/integration/husky) - Oppsett av Git-hooks
- [Konfigurasjon](/configuration) - Biome konfigurasjonsalternativer
- [Oppsett](/setup) - Innledende prosjektoppsett